package com.view;

import com.model.Perpustakaan;
import com.model.Publikasi;
import com.model.TimerBacaPublikasi;
import com.model.TimerSimpanPublikasi;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;
import org.omg.CORBA.DATA_CONVERSION;

public class FrameUtama extends JFrame {

    private JMenuBar menuBar;
    private JMenu menuPublikasi;
    private JMenu menuAnggota;
    private JMenu menuPinjaman;
    private JMenuItem menuTambahPublikasi;
    private JMenuItem menuTambahAnggota;
    private JMenuItem menuTambahPinjaman;
    private JMenuItem menuSimpanFilePublikasi;
    private JMenuItem menuBacaFilePublikasi;
    
    private JMenuItem menuLihatPublikasi;
    private JMenuItem simpanKeTabel;
    private JMenuItem bacaDariTabel;
    
    private JMenuItem menuSimpanFileAnggota;
    private JMenuItem menuBacaFileAnggota;
    private JMenuItem menuSimpanFilePinjaman;
    private JMenuItem menuBacaFilePinjaman;
    private JMenuItem menuCariAnggota;
    private JMenuItem menuTambahFotoAnggota;

    public FrameUtama() {
        inisialisasi();
        TimerBacaPublikasi timerBaca = new TimerBacaPublikasi(5000);
        TimerSimpanPublikasi timerSimpan = new TimerSimpanPublikasi(5000);
    }

    public void inisialisasi() {
        this.setSize(600, 500);
        this.setTitle("Perpustakaan");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        menuPublikasi = new JMenu("Publikasi");
        menuBar.add(menuPublikasi);
        menuAnggota = new JMenu("Anggota");
        menuBar.add(menuAnggota);
        menuPinjaman = new JMenu("Pinjaman");
        menuBar.add(menuPinjaman);

        //Menu Tambah Publikasi
        menuTambahPublikasi = new JMenuItem("TambahPublikasi");
        menuTambahPublikasi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuTambahPublikasiAction();
            }
        });
        menuPublikasi.add(menuTambahPublikasi);

        //Menu Tambah Anggota
        menuTambahAnggota = new JMenuItem("TambahAnggota");
        menuTambahAnggota.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuTambahAnggotaAction();
            }
        });
        menuAnggota.add(menuTambahAnggota);

        //Menu Tambah Pinjaman
        menuTambahPinjaman = new JMenuItem("TambahPinjaman");
        menuTambahPinjaman.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuTambahPinjamanAction();
            }
        });
        menuPinjaman.add(menuTambahPinjaman);

        menuSimpanFilePublikasi = new JMenuItem("Simpan");
        menuSimpanFilePublikasi.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuSimpanFilePublikasiAction();
            }
        });
        menuPublikasi.add(menuSimpanFilePublikasi);

        menuBacaFilePublikasi = new JMenuItem("Baca");
        menuBacaFilePublikasi.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuBacaFilePublikasiAction();
            }
        });
        menuPublikasi.add(menuBacaFilePublikasi);

        menuSimpanFileAnggota = new JMenuItem("Simpan");
        menuSimpanFileAnggota.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuSimpanFileAnggotaAction();
            }
        });
        menuAnggota.add(menuSimpanFileAnggota);

        menuBacaFileAnggota = new JMenuItem("Baca");
        menuBacaFileAnggota.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                menuBacaFileAnggotaAction();
            }
        });
        menuAnggota.add(menuBacaFileAnggota);
        this.setVisible(true);
        
        menuTambahFotoAnggota = new JMenuItem("Tambah FotoAnggota");
        menuTambahFotoAnggota.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuTambahFotoAnggotaAction();
            }
        });
        menuAnggota.add(menuTambahFotoAnggota);
        
        menuCariAnggota = new JMenuItem("Cari Anggota");
        menuCariAnggota.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuCariAnggotaAction();
            }
        });
        menuAnggota.add(menuCariAnggota);
        
        menuLihatPublikasi = new JMenuItem("Lihat Publikasi");
        menuLihatPublikasi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                menuLihatPublikasiAction();
            }
        });
        menuPublikasi.add(menuLihatPublikasi);
        
        simpanKeTabel = new JMenuItem("Simpan Ke Tabel");
        simpanKeTabel.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                simpanKeTabelAction();
            }
        });
        menuPublikasi.add(simpanKeTabel);
        
        bacaDariTabel = new JMenuItem("Baca Dari Tabel");
        bacaDariTabel.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                bacaDariTabelAction();
            }
        });
        menuPublikasi.add(bacaDariTabel);
    }


    public void menuCariAnggotaAction() {
        JFrame testFrame = new JFrame();
        PanelCariAnggota testAnggota = new PanelCariAnggota();
        testFrame.getContentPane().add(testAnggota);
        testFrame.setSize(500, 400);
        testFrame.setVisible(true);
        testFrame.setTitle("Panel Cari Anggota");
    }

    public void menuTambahFotoAnggotaAction(){
        JDialog test = new JDialog();
        PanelTambahFotoAnggota plp = new PanelTambahFotoAnggota();
        test.getContentPane().add(plp);
        test.setSize(450, 400);
        test.setVisible(true);
        test.setTitle("Panel Tambah Foto Anggota");
    }
    
    public void menuLihatPublikasiAction(){
        JDialog test = new JDialog();
        PanelLihatPublikasi plp = new PanelLihatPublikasi(Perpustakaan.DAFTAR_PUBLIKASI);
        test.getContentPane().add(plp);
        test.setSize(700, 500);
        test.setVisible(true);
        test.setTitle("Panel Lihat Publikasi");
    }
    
    public void simpanKeTabelAction() {
        Perpustakaan.simpanTabelPublikasi();
    }
    
    public void bacaDariTabelAction(){
        Perpustakaan.bacaTabelPublikasi();
    }

    public void menuTambahPublikasiAction() {
        JFrame test = new JFrame();
        PanelTambahPublikasi ptp = new PanelTambahPublikasi();
        test.getContentPane().add(ptp);
        test.setSize(350, 405);
        test.setVisible(true);
        test.setTitle("PanelTambahPublikasi");
    }

    public void menuTambahAnggotaAction() {
        JFrame test = new JFrame();
        PanelTambahAnggota pta = new PanelTambahAnggota();
        test.getContentPane().add(pta);
        test.setSize(350, 250);
        test.setVisible(true);
        test.setTitle("Panel Tambah Anggota");
    }

    public void menuTambahPinjamanAction() {
        JFrame test = new JFrame();
        PanelTambahPinjaman ptpn = new PanelTambahPinjaman();
        test.getContentPane().add(ptpn);
        test.setSize(350, 250);
        test.setVisible(true);
        test.setTitle("Panel Tambah Pinjaman");
    }

    public void menuSimpanFilePublikasiAction() {
        Perpustakaan.simpanFilePublikasi();
    }

    public void menuBacaFilePublikasiAction() {
        Perpustakaan.bacaFilePublikasi();
        System.out.println(Perpustakaan.bacaDaftarPublikasi());
        JOptionPane.showMessageDialog(null, Perpustakaan.bacaDaftarPublikasi());
    }

    public void menuSimpanFileAnggotaAction() {
        Perpustakaan.simpanFileAnggota();
    }

    public void menuBacaFileAnggotaAction() {
        Perpustakaan.bacaFileAnggota();
        System.out.println(Perpustakaan.bacaDaftarAnggota());
        JOptionPane.showMessageDialog(null, Perpustakaan.bacaDaftarAnggota());
    }
}